package com.zjp.service.impl;

import com.zjp.mapper.VaccinesMapper;
import com.zjp.pojo.Vaccines;
import com.zjp.pojo.VaccinesExample;
import com.zjp.service.VaccineService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Slf4j
@Service
public class VaccineServiceImpl implements VaccineService {
    @Autowired
    private VaccinesMapper vaccinesMapper;

    /**
     * 查询疫苗信息
     *
     * @return
     */
    public List<Vaccines> findAllVaccines() {
        return vaccinesMapper.selectByExample(null);
    }

    /**
     * 添加疫苗
     *
     * @param vaccines
     * @return MyBatis 中，XxxxExample 是一种用于构建查询条件的辅助类，它是 MyBatis 提供的一种查询构建器，用于在 SQL 查询中动态地添加条件和限制
     */
    public int addVacc(Vaccines vaccines) {
        // 创建VaccinesExample对象
        VaccinesExample vaccinesExample = new VaccinesExample();
        // 创建Criteria对象
        VaccinesExample.Criteria criteria = vaccinesExample.createCriteria();
        // 添加查询条件
        criteria.andVaccinesnameEqualTo(vaccines.getVaccinesname());
        criteria.andManufactorEqualTo(vaccines.getManufactor());
        // 使用countByExample方法查询数据库中符合条件的记录数
        int i = (int) vaccinesMapper.countByExample(vaccinesExample);
        // 判断记录数是否大于0
        if (i > 0) {
            log.info("疫苗数据库中已经存在,添加失败！");
            return 0;
        }
        // 使用insert方法将疫苗信息插入数据库
        return vaccinesMapper.insert(vaccines);

    }
    /**
     * 修改疫苗
     *
     * @param vaccines
     * @return
     */
    public int updateVacc(Vaccines vaccines) {
//        // 创建VaccinesExample对象
//        VaccinesExample vaccinesExample = new VaccinesExample();
//        // 创建Criteria对象
//        VaccinesExample.Criteria criteria = vaccinesExample.createCriteria();
//        // 添加查询条件
//        criteria.andVaccinesnameEqualTo(vaccines.getVaccinesname());
//        criteria.andManufactorEqualTo(vaccines.getManufactor());
//        // 使用countByExample方法查询数据库中符合条件的记录数
//        int i = (int) vaccinesMapper.countByExample(vaccinesExample);
//        // 判断记录数是否大于0
//        if (i > 0) {
//            log.info("疫苗数据库中已经存在,添加失败！");
//            return 0;
//        }
        return vaccinesMapper.updateByPrimaryKey(vaccines);
    }

    @Override
    public int deleteVaccById(Long vaccinesid) {
        return vaccinesMapper.deleteByPrimaryKey(vaccinesid);
    }

}
